_G.EXPORT_ASSERT_TO_GLOBALS = true
package.path = package.path..';../../?.lua'
require('lib/luaunit')
local publish = require('publish/publish')

_G.test_msg = {}
function test_msg:setUp()
    self.a = {}
end

function test_msg:test_operatorLt()
    local msglesser = publish.Msg:New(111)
    local msgbigger = publish.Msg:New(222)

    assertTrue(msgbigger > msglesser)
end
function test_msg:test_operatorEq()
    local msg1 = publish.Msg:New(111)
    local msg2 = publish.Msg:New(111)
    
    assertTrue(msg1 == msg2)
end    

function test_msg:test_operatorEq_withIgnoreDelay()
    local msg1 = publish.Msg:New(111.2)
    local msg2 = publish.Msg:New(111.1)
    
    assertTrue(msg1 == msg2)
end

function test_msg:test_operatorAll()
    local msg1 = publish.Msg:New(111)
    local msg2 = publish.Msg:New(111)
    local msg3 = publish.Msg:New(111.1)
    local msg4 = publish.Msg:New(111.2)
    local msg5 = publish.Msg:New(111.5)

    assertTrue(msg1 == msg2)
    assertTrue(msg1 == msg3)

    assertTrue(msg4 > msg1)
    assertTrue(msg1 < msg4)
    
    assertTrue(msg1 >= msg2)
    assertTrue(msg3 >= msg1)
    assertTrue(msg1 <= msg2)
    assertTrue(msg1 <= msg1)
    assertTrue(msg1 <= msg4)
end

function test_msg:test_diffTypeMsg()
    local msgSkill = publish.Msg:New(0,publish.msgType.Skill)
    local msgDefault = publish.Msg:New(0,publish.msgType.Normal)
    assertTrue( msgSkill ~= msgDefault)
end

local lu = LuaUnit.new()
lu:setOutputType('tap')
os.exit(lu:runSuite())
